Synthesizing Functional Reactive Programs
نویسندگان
چکیده
We present the first method to synthesize functional reactive programs from temporal logic specifications. Existing algorithms for the synthesis of reactive systems target finite-state implementations, such as hardware circuits, but fail when it comes to complex data transformations. Reactive programs instead provide a promising alternative to overcome this obstacle. They allow for abstraction from concrete implementations of data transformations while shifting focus to the higher order control of data. In Functional Reactive Programming (FRP), this separation of control and data is even made strict, as it makes for a fundamental building block of its well defined operational semantics. In this paper we define the theoretical foundations and implement the first tool for the construction of data-intensive functional reactive programs from temporal logic specifications. We introduce Temporal Stream Logic (TSL) which allows for the specification of control, but abstracts from actual data. Given a specification in TSL, our synthesis procedure constructs an FRP program that is guaranteed to implement the specified control. We report on experience with our framework and tool implementation on a collection of both new and existing synthesis benchmarks.
منابع مشابه
Synthesizing Reactive Programs
Current theoretical solutions to the classical Church’s synthesis problem are focused on synthesizing transition systems and not programs. Programs are compact and often the true aim in many synthesis problems, while the transition systems that correspond to them are often large and not very useful as synthesized artefacts. Consequently, current practical techniques first synthesize a transitio...
متن کاملSynthesizing Structured Reactive Programs via Deterministic Tree Automata
Existing approaches to the synthesis of reactive systems typically involve the construction of transition systems such as Mealy automata. However, in order to obtain a succinct representation of the desired system, structured programs can be a more suitable model. In 2011, Madhusudan proposed an algorithm to construct a structured reactive program for a given ω-regular specification without syn...
متن کاملSynthesizing Executable Programs
Automatic generation of correct software from requirements has long been a “holy grail” for system and software development. According to this vision, instead of implementing a system and then working hard to apply testing and verification methods to prove system correctness, a system is rather built correctly by construction. This problem, referred to as synthesis, is undecidable in the genera...
متن کاملFroid: Functional Reactive Android
In this paper, we present Froid (Functional Reactive Android). Froid is a proof of concept Android library that addresses the problem introduced by callbacks in GUI programming. The library allows developers to create applications using the functional reactive programming model. Specifically, programmers using Froid are able to take advantage of EventStreams and Behaviors in their programs. Eve...
متن کاملJ. Symbolic Computation (1999) 11, 1{39 A Higher-Order Interpretation of Deductive Tableau
The Deductive Tableau of Manna and Waldinger is a formal system with an associated methodology for synthesizing functional programs by existence proofs in classical rst-order theories. We reinterpret the formal system in a setting that is higher-order in two respects: higher-order logic is used to formalize a theory of functional programs and higher-order resolution is used to synthesize progra...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1712.00246 شماره
صفحات -
تاریخ انتشار 2017